Ruby parser rewite
2023
Ruby parserの抱える課題解決のため、書き換えが図られている
RubyKaigi 2023でも複数のparserに関するセッションがあった
https://rubykaigi.org/2023/schedule/
3.2時点のCRuby parserについて
Bisonというツールで生成されたもの
LRパーサを生成するパーサジェネレータ
Bisonは文法ファイル(CRubyのコードベースではparse.y)を受け取り、Cでパーサーを生成する(parse.c)
課題 https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
CRubyパーサーには長年の問題が大きく分けて4つある
保守性
undocumented
Ruby Hacking GuideやRuby Under A Microscopeなどの試みはあるが、実際はparse.yを読むしかない
コミッターの中でもごく一部しかコミットしていない
エラー耐性
構文エラーが発生してもプログラムの解析を継続するパーサーの能力
高いほどコードを書く人に早く、正確に修復すべき点をフィードバックできる
移植性
CRuby以外の実装で使えない
universal parserにしたい
性能
https://rubykaigi.org/2023/presentations/spikeolaf.html
@spikeolaf
https://yui-knk.hatenablog.com/entry/2023/06/18/162100